/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package reclamos;

import com.csvreader.CsvReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Balrog
 */
class LeercsvBagTags_Exp {
    public LeercsvBagTags_Exp(String ruta) throws IOException{
        try {
            conexion con = new conexion();
            CsvReader expedientes = new CsvReader(ruta);
            expedientes.readHeaders();
            String Secuencia_equipaje;
            String Secuencia_expediente;
            String Numero_Tag;
            String Marca;
            String Peso;
            String Color;
            String Tipo_Codigo;
            String Descripcion;
            String Fecha_Accion;
            String Tipo_Accion;
            String Usuario_Accion;
            String Fecha_expediente_nueva=null;
            int contador = 0;
            while (expedientes.readRecord()) {
                Secuencia_equipaje = expedientes.get("Secuencia_equipaje");
                if (Secuencia_equipaje.length() == 0) {
                    Secuencia_equipaje = "NULL";
                    contador++;
                }
                Secuencia_expediente = expedientes.get("Secuencia_expediente");
                if (Secuencia_expediente.length() == 0) {
                    Secuencia_expediente = "NULL";
                    contador++;
                }
                Numero_Tag = expedientes.get("Numero_Tag");
                if (Numero_Tag.length() == 0) {
                    Numero_Tag = "NULL";
                    contador++;
                }
                Marca = expedientes.get("Marca");
                if (Marca.length() == 0) {
                    Marca = "NULL";
                    contador++;
                }
                Peso = expedientes.get("Peso");
                if (Peso.length() == 0) {
                    Peso = "NULL";
                    contador++;
                }
                 Color = expedientes.get("Color");
                if (Color.length() == 0) {
                    Color = "NULL";
                    contador++;
                }
                Tipo_Codigo = expedientes.get("Tipo_Codigo");
                if (Tipo_Codigo.length() == 0) {
                    Tipo_Codigo = "NULL";
                    contador++;
                }
                Descripcion = expedientes.get("Descripcion");
                if (Descripcion.length() == 0) {
                    Descripcion = "NULL";
                    contador++;
                }
                Fecha_Accion = expedientes.get("Fecha_accion");
                Tipo_Accion = expedientes.get("Tipo_Accion");
                if (Tipo_Accion.length() == 0) {
                    Tipo_Accion = "NULL";
                    contador++;
                }
                Usuario_Accion = expedientes.get("Usuario_Accion");
                if (Usuario_Accion.length() == 0) {
                    Usuario_Accion = "NULL";
                    contador++;
                }
                   if (Fecha_Accion.length() > 0) {
                    Fecha_expediente_nueva =this.dateFormatter(Fecha_Accion);
                  }
                  if (Fecha_expediente_nueva == null) {
                    Fecha_expediente_nueva = "NULL";
                    contador++;
                }
  

                  
  
               
              
                con.insertarBagTags_Exp(Secuencia_equipaje,Secuencia_expediente,Numero_Tag,Marca,Peso,Color,Tipo_Codigo,Descripcion,Fecha_expediente_nueva,Tipo_Accion,Usuario_Accion, contador);
                contador = 0;
            
            
        }
        expedientes.close();
            try {
                con.conexion.close();
            } catch (SQLException ex) {
                Logger.getLogger(Leercsvexpe.class.getName()).log(Level.SEVERE, null, ex);
            }
        } catch (FileNotFoundException ex) {
            Logger.getLogger(Leercsvexpe.class.getName()).log(Level.SEVERE, null, ex);
        }
        }
        
        public String dateFormatter(String formatToParse) {

        String format = "";

        SimpleDateFormat format1 = new SimpleDateFormat("dd-MMM-yyyy hh:mm:ss");
        SimpleDateFormat format2 = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss");
        SimpleDateFormat format3 = new SimpleDateFormat("dd-MMM-yy");

        SimpleDateFormat finalFormat = new SimpleDateFormat("yyyy-MM-dd");

        Date parser;

        try {
            parser = format1.parse(formatToParse);
            format = finalFormat.format(parser);
        } catch (ParseException e1) {

            try {
                parser = format2.parse(formatToParse);
                format = finalFormat.format(parser);
            } catch (ParseException e2) {

                try {
                    parser = format3.parse(formatToParse);
                    format = finalFormat.format(parser);
                } catch (ParseException e3) {
                    System.err.println("Error: La fecha entregada no es valida para procesarse.");
                    e2.printStackTrace();
                }

            }
        }

        return format;
    }

    private String cambiar_fecha(String fecha) {


        String estado = null;
        String fechanueva = null;
        try {
            if (fecha.length() > 0) {
                String dia1 = fecha.substring(0, 2);
                String mes1 = fecha.substring(3, 6);
                String anio1 = fecha.substring(7, 11);

                switch (mes1) {
                    case "Jan":
                        mes1 = "01";
                        break;
                    case "Feb":
                        mes1 = "02";
                        break;
                    case "Mar":
                        mes1 = "03";
                        break;
                    case "Apr":
                        mes1 = "04";
                        break;
                    case "May":
                        mes1 = "05";
                        break;
                    case "Jun":
                        mes1 = "06";
                        break;
                    case "Jul":
                        mes1 = "07";
                        break;
                    case "Aug":
                        mes1 = "08";
                        break;
                    case "Sep":
                        mes1 = "09";
                        break;
                    case "Oct":
                        mes1 = "10";
                        break;
                    case "Nov":
                        mes1 = "11";
                        break;
                    case "Dec":
                        mes1 = "12";
                        break;
                    case "Ene":
                        mes1 = "01";
                        break;
                    case "Abr":
                        mes1 = "04";
                        break;
                    case "Ago":
                        mes1 = "08";
                        break;
                    case "Dic":
                        mes1 = "12";
                        break;
                }

                fechanueva = anio1 + "-" + mes1 + "-" + dia1;

                if ("null-null-null".equals(fechanueva)) {
                    fechanueva = null;
                }
            }

        } catch (StringIndexOutOfBoundsException ex) {
            estado = ex.getMessage();
        }


        return fechanueva;
    }
            
    
}
